package com.emser.unc.client.service;

import java.util.ArrayList;
import java.util.List;

import com.emser.unc.serializable.CustomerDTO;
import com.emser.unc.serializable.ResultDTO;
import com.emser.unc.shared.exception.NotLoggedInException;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("CustomerService")
public interface CustomerService extends RemoteService{
	boolean addCustomer(String userAccountName, CustomerDTO seller)throws NotLoggedInException;
	ResultDTO<CustomerDTO> getCustomers(String cursorString, int range, String userAccountName)throws NotLoggedInException;
	boolean deleteCustomers(String userAccountName, ArrayList<Long> customerIds)throws NotLoggedInException;
	boolean updateCustomer(String userAccountName,CustomerDTO customer)throws NotLoggedInException;
	ResultDTO<CustomerDTO> getCustomersSeller(String cursorString, int range,String userAccountName,String sellerkey)throws NotLoggedInException;
	void addCustomersSellerList(String userAccountName, List<Long> customersIds,String sellerKey) throws NotLoggedInException;
	Integer getCustomersCount(String userAccountName) throws NotLoggedInException;
	Integer getSearchedCustomersCount(ArrayList<String> searchParam)throws NotLoggedInException;
	ResultDTO<CustomerDTO> getSearchCustomers(String cursorString, int range,
			ArrayList<String> searchParam)throws NotLoggedInException;
	CustomerDTO getCustomer(Long idCustomer,String userAccountName)throws NotLoggedInException;
}
